﻿/*   
    Copyright (C) 2009 Galaktika Corporation ZAO

    This file is a part of Galaktika.BusinessMonitor
 
    Galaktika.BusinessMonitor is a free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
      
    You should have received a copy of the GNU General Public License
    along with Galaktika.BusinessMonitor.  If not, see <http://www.gnu.org/licenses/>.
  
    If GPL v.3 is not suitable for your products or company,
    Galaktika Corp provides Galaktika.BusinessMonitor under a flexible commercial license
    designed to meet your specific usage and distribution requirements.
    If you have already obtained a commercial license from Galaktika Corp,
    you can use this file under those license terms.
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Galaktika.BI.Extensibility;

namespace Galaktika.BI.Addin.VisifireChart
{
    class Mapper : IBrickMapper
    {
        #region IBrickMapper Members

        public Type GetMappedType(Galaktika.BI.Extensibility.Dom.BrickComponent brick)
        {
            switch (brick.ComponentId)
            {
                case "{945DD9BB-AC00-4d38-AF26-D26935CC1FF7}": // PivotChart guid
                    return Type.GetType("Galaktika.BI.Addin.VisifireChart.Runtime.RanetChart,Galaktika.BI.Addin.VisifireChart.Runtime");
                default:
                    return null;
            }
        }

        public IEnumerable<Assembly> MappedAssemblies
        {
            get 
            {
                return new Assembly[] 
                { 
                    Type.GetType("Galaktika.BI.Addin.VisifireChart.Runtime.RanetChart,Galaktika.BI.Addin.VisifireChart.Runtime", true).Assembly,
                    Type.GetType("Visifire.Charts.Chart,Ranet.Charting", true).Assembly
                };
            }
        }

        public IEnumerable<Assembly> DesigntimeAssemblies
        {
            get { return new Assembly[] { }; }
        }

        #endregion
    }
}
